import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)

export default new Vuex.Store({
  state: {
    count: 1,
    cart: JSON.parse(localStorage.cart || '[]')
  },
  mutations: {
    addCart(state, obj) {
      let flag = false
      // console.log(obj)
      // 1. 如果没有商品添加商品
      // 2. 如果商品已经存在，修改商品的数量
      // 3. 本地存储
      state.cart.forEach(item => {
        if (item.id === obj.goodsinfo.id) {
          item.count += obj.goodsinfo.count
          flag = true
        }
      })

      if (!flag) {
        state.cart.push(obj.goodsinfo)
      }
      localStorage.cart = JSON.stringify(state.cart)
    }
  },
  getters: {
    getAllCount(state) {
      let c = 0
      state.cart.forEach(item => {
        c += item.count
      })
      return c
    },
    getAllPrice(state) {
      let o = 0
      state.cart.forEach(item => {
        if (item.selected) {
          o += item.price * item.count
        }
      })
      return o
    }
  }
})
